package com.info33.platform.doc.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.info33.platform.doc.dto.DocFileSearchDTO;
import com.info33.platform.doc.entity.DocFile;
import com.info33.platform.doc.vo.DocFileButtonVO;
import com.info33.platform.doc.vo.DocFileStatisticsVO;
import com.info33.platform.doc.vo.DocFileVO;
import com.info33.platform.system.vo.SysUserVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author admin
 */
@Repository
public interface DocFileDao extends BaseMapper<DocFile> {

    /**
     * 分页获取
     *
     * @param page
     * @param docFileSearchDTO
     * @param currentUser
     * @return
     */
    IPage<DocFileVO> pageDocFileList(IPage<DocFileVO> page, @Param("docFileSearchDTO") DocFileSearchDTO docFileSearchDTO,
                                     @Param("currentUser") SysUserVO currentUser);

    /**
     * 根据id获取详情
     *
     * @param id
     * @return
     */
    DocFileVO getDetail(Long id);

    /**
     * 获取用户操作权限
     *
     * @return
     */
    DocFileButtonVO getDocFileButton(@Param("id") Long id, @Param("currentUserId") Long currentUserId, @Param("tenantId") Long tenantId);

    /**
     * pc - 多文件查询 + 上传人信息
     *
     * @param ids 文件 id 集合
     * @return 对象集合
     */
    List<DocFileVO> listWithUserInfo(String ids);

    /**
     * 文档统计
     * @param currentUser
     * @return
     */
	List<DocFileStatisticsVO> fileStatistics(@Param("currentUser") SysUserVO currentUser);


}